-- UserPropM
-- Create by panyl
-- 管理所有的普通道具

module("UserPropM", package.seeall);

-- 所有配置的属性信息
local userProps = {}

local sortFunc;

-- 载入配置表
local _init = false;
local loadCsv = function()
    if _init then return end
    _init = true;

    userProps = {}

    local user_prop_CSV = get_user_prop_CSV();
    for _, prop in pairs(user_prop_CSV) do
        table.insert(userProps, prop)
    end
    table.sort(userProps, sortFunc)

    -- TODO: 这里赋值nil不起效，暂不知为何
    user_prop_CSV = {};
end

-- 模块初始化
function init()
    loadCsv();
end

-- 获取玩家属性描述
function getPropDesc(props)
    local ret = {}
    for i = 1, #userProps do
        local prop
        for j = 1, #props do
            if props[j][1] == userProps[i].prop_id then
                prop = props[j]
                break
            end
        end
        
        if prop then
            table.insert(ret, PropM.getPropDesc(prop))
        elseif userProps[i].must_show == 1 then
            -- 必须要显示的，就显示为0
            table.insert(ret, PropM.getPropDesc({userProps[i].prop_id, 0}))
        end
    end
    
    return ret
end

sortFunc = function(p1, p2)
    return p1.order < p2.order
end